关于<html:form>的属性和javascript

来源:百度知道 编辑:UC知道 时间:2024/06/18 01:50:17
原来用<form>标签时,我想判断其中input的age属性输入的类型而写了个js,如下:
<form name="addform"...>
<input type="text" name="age" value="" onblur="onlyNum(this.value)">
...
</form>
<script>
function onlyNum(number)
{
if(number!="")
{
var r,re;
re = /\d*/;
r = number.match(re);
if(r==number)
{
return true;
}else
{
alert("类型不正确!请输入整数型");

## document.addform.num.value="";//清空文本值
## document.addform.num.focus();//获得光标
return false;
}
}
}
</script>
但是现在换成了<html:form>我发现我不会写了,不知道form的名字和input属性的名字了,也就是上面##处的代码该如何写呀?(我是新手,呵呵~)如下为<html:form>

<html:form action...>
<html:text property="num" value=""

<html:form>里还能用<input type...>;
可以使用document.forms[0]["num"]来获取对象 比如document.forms[0]["num"].value就可以获取值

struts标签的property属性就是对应客户端的name属性,因此你原先的用name时代码怎么写,现在还怎么写。也就是说你需要为你的标签添上property属性就行,值和name属性的值一样,javascript代码不必改.

楼主要理解,struts标签(自定义标签)的一种,是javaEE服务器端技术,这些标签是为了和Form(struts中的Form)建立映射的。客户端浏览器并不认识这些标签。
因此,这些标签在传给客户端前必须被解析成普通的html代码。(这是由服务器来做的)
<html:form>标签就被解析成<form>标签。
标签的property属性就被解析成name属性。

关于问题补充:
<html:text>标签在传到客户端前就被解析成<input type="text">
其它的input控件也有相应的标签与之对应。
所以没必要用<input type....>

如果你用<input type...>,struts没办法将这个控件的值与Form中的属性映射起来。而且好象会出错。(以前试过,忘了)